若同時需要很多個物件,不妨參考一下前面說到陣列適合儲存多個資料,儲存物件也不例外,我們可以在陣列內儲存多個物件,如下:
var farms = [
    {
        farmer: 'Jerry',
        chicken: 5,
        duck: 6,
        dogs: ['小白','小黑']
     },
    {
       farmer: 'Tom',
       chicken: 8,
       duck: 3,
       dogs: ['皮皮']
     }
];
前面有講到屬性不只可以賦予值,也可以是函式,不妨來增加點有函式的屬性:
   farms[0].poultry = function(){
       var total = this.chicken + this.duck;
       console.log(total);
   };
   farms[1].poultry = function(){
       var total = this.chicken + this.duck;
       console.log(total);
   };
以上複習到了前面兩個觀念:
所以我們在整個 farms 陣列內先讀取第一個資料,即 farms[0]
接下來為它新增一個屬性 farms[0].poultry
且這個屬性賦予一個函式用來計算所有的家禽farms[0].poultry = function(){...}
若此時在 console 呼叫 farms 這個陣列會如下:
var farms = [
    {
        farmer: 'Jerry',
        chicken: 5,
        duck: 6,
        dogs: ['小白','小黑'],
        poultry: function(){
            var total = this.chicken + this.duck;
            console.log(total);
        }
     },
    {
       farmer: 'Tom',
       chicken: 8,
       duck: 3,
       dogs: ['皮皮'],
       poultry: function(){
            var total = this.chicken + this.duck;
            console.log(total);
        }
     }
];
如果此時想要計算第二個物件的家禽數量:
console.log(farms[1].poultry());
此時會在 console 看到 11
如果想要讀取第一個物件的 dogs 屬性的第一筆資料,則:
console.log(farms[0].dogs[0]);
此時會在 console 看到 小白
這裡資料型態讀取上都是依照前面講過的觀念,不同資料型態讀取上會較複雜,可以多重複看幾次來消化